package com.itheima.testjian;

public class maxAndMin {

    //同时获取最大值和最小值

    public static void main(String[] args) {
        int[] arr = {12,138,255,4,65,99};
        int[] daXiao = getMaxAndMin(arr);
        System.out.println(daXiao[0]);
        System.out.println(daXiao[1]);

        //数字交换（重点）
        //法一（工作中常用）
        int a = 10;
        int b = 20;
        int temp = a;
        a = b;
        b = temp;
        int[] ss = {a,b};
        System.out.println("a是：" + ss[0]);
        System.out.println("b是：" + ss[1]);

        //法二（比试中常用）
        //一个数 被 另一个数 异或两次 等于它本身！！！
        int c = 10;
        int d = 20;
        //10^20
        c = c ^ d;
        //10^20 ^20  = 10
        d = c ^ d;
        //10^20 ^10  =20
        c = c ^ d;
        int[] bb = {c,d};
        System.out.println("c是：" + bb[0]);
        System.out.println("d是：" + bb[1]);


    }

    public static int[] getMaxAndMin(int[] arr) {
        //假设的一个数最大
        int max = arr[0];
        for (int i = 0; i < arr.length; i++) {
            if (max < arr[i]) {
                max = arr[i];
            }
        }

        //假设第一个数最小
        int min = arr[0];
        for (int i = 0; i < arr.length; i++) {
            if (min > arr[i]) {
                min = arr[i];
            }
        }

        //用一个数组，同时返回最大值和最小值。
        int[] maxAndMin = {max, min};
        return maxAndMin;
    }
}
